/* Função para colocar máscara no campo data de nascimento */
function mascaraData(campo, teclapres){

        var tecla = teclapres.keyCode;
        var vr = new String(campo.value);
        vr = vr.replace("/", "");
        tam = vr.length + 1;
		/* Se não for backspace*/
        if (tecla !=8)
        {
            if (tam == 3)
                campo.value = vr.substr(0, 2) + '/';
            if (tam == 5)
                campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 4) + '/';
        }
}

/* Função para colocar máscara no campo cpf */
function mascaraCpf(campo, teclapres){

        var tecla = teclapres.keyCode;
        var vr = new String(campo.value);
        vr = vr.replace(".", "");
		vr = vr.replace(".", "");
		vr = vr.replace("-", "");
        tam = vr.length + 1;
		/* Se não for backspace*/
        if (tecla !=8)
        {
            if (tam == 4)
                campo.value = vr.substr(0, 3) + '.';
            if (tam == 7)
                campo.value = vr.substr(0, 3) + '.' + vr.substr(3, 3) + '.' ;
			if (tam == 10)
				campo.value = vr.substr(0, 3) + '.' + vr.substr(3, 3) + '.' + vr.substr(6, 3) + '-';
				
        }
}

function mascaraOrgaoEmissor(campo, teclapres){
  
        var tecla = teclapres.keyCode;
        var vr = new String(campo.value);        
        tam = vr.length + 1;
		/* Se não for backspace*/
        if (tecla !=8)
        {
            if (tam == 4)
                campo.value = vr.substr(0, 3) + '-';
            
        }
}

function mascaraCep(campo, teclapres) {
  
	var tecla = teclapres.keyCode;
        var vr = new String(campo.value);
        vr = vr.replace(".", "");
        tam = vr.length + 1;
		/* Se não for backspace*/
        if (tecla !=8)
        {
            if (tam == 3)
                campo.value = vr.substr(0, 2) + '.';
            if (tam == 6)
                campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 5) + '-' ;
        }
}

function mascaraTel(campo, teclapres) {
  
	var tecla = teclapres.keyCode;
        var vr = new String(campo.value);
        vr = vr.replace("(", "");
	vr = vr.replace(")", "");
	vr = vr.replace(" ", "");
        tam = vr.length + 1;
		/* Se não for backspace*/
        if (tecla !=8)
        {
            if (tam == 1)
                campo.value = '(';
            if (tam == 3)
                campo.value =  '(' + vr.substr(0, 2) + ')' + ' ' ;
	    if (tam == 7)
		campo.value = '(' + vr.substr(0, 2) + ')' + ' ' +vr.substr(2, 6) + '-';
        }
}

function mascaraIssn(campo, teclapres){
  
        var tecla = teclapres.keyCode;
        var vr = new String(campo.value);        
        tam = vr.length + 1;
		/* Se não for backspace*/
        if (tecla !=8)
        {
            if (tam == 5)
                campo.value = vr.substr(0, 4) + '-';
            
        }
}

/*Função que verifica se um cpf é valido */
function verificaCPF(Objcpf){	

	cpf = Objcpf.value;
	exp = /\.|\-/g;
	cpf = cpf.toString().replace( exp, "" );
	/* Verifica de só contém números ou é menor que 10, ou é maior que 11 ou contém números iguais apenas, se for não é válido. */
	if(cpf.length > 0){
	    if(isNaN(cpf) || cpf.length < 10 || cpf.length > 11|| cpf == "00000000000" || cpf == "11111111111" || 
		    cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || 
		    cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){
			    alert("O cpf informado não é valido.");
			    return false;
	    }
	    /* Aqui começa a verificar se o número de fato é válido com base nos cálculos matemáticos. */
	    add = 0;
	    var i = 0;
	    for (i=0; i < 9; i ++)
		    add += parseInt(cpf.charAt(i)) * (10 - i);
		    
	    rev = 11 - (add % 11);
	    if (rev == 10 || rev == 11)
		    rev = 0;
		    
	    if (rev != parseInt(cpf.charAt(9))){
		    alert("O cpf informado não é valido.");
		    return false;
	    }
	    add = 0;
	    for (i = 0; i < 10; i ++)
		    add += parseInt(cpf.charAt(i)) * (11 - i);
	    rev = 11 - (add % 11);
	    if (rev == 10 || rev == 11)
		    rev = 0;
	    if (rev != parseInt(cpf.charAt(10))){
		    alert("O cpf informado não é valido.");
		    return false;
	    }
	}
	
}

/* Função que verifica se uma dada data é válida. */
function verificaData(digData, strNome) 
{
        var bissexto = 0;
        var data = digData; 
        var tam = data.length;
	if(tam > 0){
            var dia = data.substr(0,2);
            var mes = data.substr(3,2);
            var ano = data.substr(6,4);
            if ((ano > 1900)||(ano < 2100))
            {
                switch (mes) 
                {
                    case '01':
                    case '03':
                    case '05':
                    case '07':
                    case '08':
                    case '10':
                    case '12':
                        if  (dia <= 31) 
                        {
                            return true;
                        }
                        break;
                                
                        case '04':              
                        case '06':
                        case '09':
                        case '11':
                            if  (dia <= 30) 
                            {
                                return true;
                            }
                            break;
                        case '02':
                         /* Validando ano Bissexto / fevereiro / dia */ 
                            if ((ano % 4 == 0) && ((ano % 100 == 0) || (ano % 400 == 0))) 
                            { 
                                bissexto = 1; 
                            } 
                            if ((bissexto == 1) && (dia <= 29)) 
                            { 
                                return true;                             
                            } 
                            if ((bissexto != 1) && (dia <= 28)) 
                            { 
                                return true; 
                            }                       
                            break;                                           
                        }
                }              
        alert("O campo "+ strNome +" está inválido!");
        return false;
	}
}
/* Função que verifica se uma dada data obrigatória é  válida. */
function verificaDataObrigatoria(digData, strNome) 
{
        var bissexto = 0;
        var data = digData; 
        var tam = data.length;
	if ( tam == 0 || tam == null){
	  alert("O campo "+ strNome +" é obrigatório!");
	  return false;
	}
        if (tam == 10) 
        {
            var dia = data.substr(0,2);
            var mes = data.substr(3,2);
            var ano = data.substr(6,4);
            if ((ano > 1900)||(ano < 2100))
            {
                switch (mes) 
                {
                    case '01':
                    case '03':
                    case '05':
                    case '07':
                    case '08':
                    case '10':
                    case '12':
                        if  (dia <= 31) 
                        {
                            return true;
                        }
                        break;
                                
                        case '04':              
                        case '06':
                        case '09':
                        case '11':
                            if  (dia <= 30) 
                            {
                                return true;
                            }
                            break;
                        case '02':
                         /* Validando ano Bissexto / fevereiro / dia */ 
                            if ((ano % 4 == 0) && ((ano % 100 == 0) || (ano % 400 == 0))) 
                            { 
                                bissexto = 1; 
                            } 
                            if ((bissexto == 1) && (dia <= 29)) 
                            { 
                                return true;                             
                            } 
                            if ((bissexto != 1) && (dia <= 28)) 
                            { 
                                return true; 
                            }                       
                            break;                                           
                        }
                }
        }       
        alert("O campo "+ strNome +" está inválido!");
        return false;
}

/* Verifica se o campo só contem letras. */
function verificaString(strCampo, strNome){
	var digits="ABCDEFGHIJKLMNOPQRSTUVXYWZÁÉÍÓÚÂÊÎÔÛÃẼĨÕŨÇabcdefghijklmnopqrstuvwxyzáéíóúâêîôûãẽĩõũç ";
	var campo_temp;
	for (var i=0;i<strCampo.length;i++){
		campo_temp=strCampo.substring(i,i+1);	
		if (digits.indexOf(campo_temp)==-1){
			alert("O campo "+ strNome +" deve conter apenas letras.");
			return false;			
		}
	}	
  
}

function verificaCampoObrigatorio(strCampo, strNome){
	if (strCampo.length < 1) {
	    alert("O campo "+ strNome +" é obrigatório.");
	    return false; 
	}
}
/* Verifica se o campo que é obrigatório está vazio ou se só contem letras. */
function verificaStringObrigatoria(strCampo, strNome){
  
	if (strCampo.length < 1) {
	    alert("O campo "+ strNome +" é obrigatório.");
	    return false; 
	}
	var digits="ABCDEFGHIJKLMNOPQRSTUVXYWZÁÉÍÓÚÂÊÎÔÛÃẼĨÕŨÇabcdefghijklmnopqrstuvwxyzáéíóúâêîôûãẽĩõũç ";
	var campo_temp;
	for (var i=0;i<strCampo.length;i++){
		campo_temp=strCampo.substring(i,i+1);	
		if (digits.indexOf(campo_temp)==-1){
			alert("O campo "+ strNome +" deve conter apenas letras.");
			return false;			
		}
	}	
}


// Função para validação de CEP.
function verificaCep(strCEP){

   // Caso o CEP não esteja nesse formato ele é inválido!
   var objER = /^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/;

   strCEP = strCEP.replace(/^\s+|\s+$/g, '');
   if(strCEP.length > 0)
   {
      if(objER.test(strCEP))
           return true;
      else
           alert("O cep está inválido.");
           return false;
   }
   else{
         alert("O campo cep é obrigatório.");
         return false;
   }
}

function verificaTel(strTel, strNome){
  
  // Caso o telefone não esteja nesse formato ele é inválido!
  var objER = /^\(?\d{2}\)?[\s-]?\d{4}-?\d{4}$/;
  
  strTel = strTel.replace(/^\s+|\s+$/g, '');
  
  if(strTel.length > 0)
   {
  
      if(objER.test(strTel))
           return true;
      else{
           alert("O campo "+ strNome +" está inválido.");
	   return false;
      }
   } 
}  
 
function verificaEmailObrigatorio(mail, strNome){

    var objER = /^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/;  
	
	
    if(mail.length > 0){
        if(objER.test(mail)){ 
                return true; 
                           
        }else{
                alert("O email está inválido.");
		return false;
                }
    }
    else{
         alert("O campo "+ strNome +" é obrigatório.");
         return false;
    }
  
}

function verificaNumero(strNum, strNome){
  if(strNum.length > 0){
	if(isNaN(strNum)){
		alert("O campo " + strNome +" deve conter apenas números.");
		return false;
	}
  }
}

/* Função que verifica se contém apenas números e se é positivo.*/
function verificaNumPos(strNumPos, strNome){
	
  if(strNumPos.length > 0){
	if(isNaN(strNumPos)){
		alert("O campo " + strNome +" deve conter apenas números.");
		return false;
	}
	if(strNumPos <= 0){
		alert("O campo " + strNome +" deve ser positivo.");
		return false;
	}
  }

}

/* Verifica se um dos sexos foi selecionado. */
function verificaSexo(){
	if(document.cadastro.tipoGenero[0].checked == false && document.cadastro.tipoGenero[1].checked == false){
		alert("Selecione um dos campos para Sexo.");
		return false;
	}
}

/* Verifica radio button se foi selecioando. */
function verificaRadio(strId){
	var selecionado = document.getElementById(strId).checked;
	if(!selecionado){
	  alert("Selecione o "+ strId +".");
	}
}

/* Verifica todos os campos para enviar*/
function valida(){	
		/* Verifica se o campo nome que é obrigatório está vazio. */
		if (verificaNome() == false) {
            return false; 
		}		
		/* Verifica se o cpf digitado é valido. */
		if(verificaCPF(cadastro.cpf) == false){
			return false;
		}
		/* Verifica se a data digitada é válida. */
		if(verificaData(cadastro.data.value) == false){
			return false;
		}
		/* Verifica se a altura contem apenas números*/
		if(verificaAltura() == false){
			return false;
		}
		/* Verifica se um dos generos foi selecionado. */
		if(verificaGenero() == false){
			return false;
		}
		/* Verifica se termo de aceitação foi selecionado. */
		if(verificaTermoAceitacao() == false){
			return false;
		}
		/* Se estiver tudo certo, envia o formulário. */
		alert('O formulário foi enviado com sucesso.');
		 
	
}


/*Esconde ou mostra o conteudo do campo passado por parametro*/
function esconderConteudo(nomeCampo, elemento, legenda){
	  
	campo = document.getElementById(nomeCampo);
  
	if($style(campo, "display")=="none"){
		campo.style.display = 'inline';
		elemento.innerHTML = "<b>"+legenda+"</b>" + " - Clique para esconder";
	}else{
		campo.style.display = 'none';
		elemento.innerHTML = "<b>"+legenda+"</b>" + " - Clique para expandir";
	}
	
}

/*Recupera o estilo(css) de um elemento html que ja está na tela*/
function $style(elem, att){
	if(elem.currentStyle)
	return (elem.currentStyle[att]);
	return document.defaultView.getComputedStyle(elem, null).getPropertyValue(att);
}

function validarForm(){
	
	if(validarInformacoes() == false)
		return false;
	
	if(validarEndereco() == false)
		return false;
	
	
	if(validarFormacaoAcademica() == false){
		return false;
	}
	
	if(validarFormacaoComplementar() == false){
		return false;
	}
	
	if(validarAtuacaoProfissional() == false){
		return false;
	}
	
	if(validarProducaoBibliografica() == false){
		return false;
	}
	
	
	return true;
}

